import io
import subprocess
# 图像处理库 Pillow
# from PIL import Image
# 做图像的矩阵运算（计算亮度的）
import numpy as np


def is_black_screen(device_id):
    img_bytes = subprocess.check_output(
        f"adb -s {device_id} exec-out screencap -p",
        shell=True  # -s 指定设备id，-p 输出png格式
    )

    # 使用pillow从字节流里面读取了图像
    img = Image.open(io.BytesIO(img_bytes))

    # 转换成像素的格式
    arr = np.array(img)

    # 计算像素的数值（数值越低，越接近黑色）
    brightness = arr.mean()

    # 打印亮度
    print(brightness)

    # 判断如果亮度小于10，判定为黑屏
    return brightness < 10


if __name__ == '__main__':
    if is_black_screen("127.0.0.1:21513"):
        print("检测到黑屏")
